def build_cstbuilder(cstbuilder):
    and_expr         = cstbuilder.builder(331056, 'and_expr', "and_expr: shift_expr ('&' shift_expr)*")
    and_test         = cstbuilder.builder(331050, 'and_test', "and_test: not_test ('and' not_test)*")
    arglist          = cstbuilder.builder(331075, 'arglist', "arglist: ( argument ',')* ( argument [','] | '*' test (',' argument)* [',' '**' test] | '**' test)")
    argument         = cstbuilder.builder(331076, 'argument', "argument: test [comp_for] | test '=' test")
    arith_expr       = cstbuilder.builder(331058, 'arith_expr', "arith_expr: term (('+' | '-') term)*")
    assert_stmt      = cstbuilder.builder(331035, 'assert_stmt', "assert_stmt: 'assert' test [',' test]")
    atom             = cstbuilder.builder(331062, 'atom', "atom: ('(' [yield_expr | testlist_comp] ')' | '[' [listmaker] ']' | '{' [dictorsetmaker] '}' | '`' testlist1 '`' | NAME | NUMBER | STRING+)")
    augassign        = cstbuilder.builder(331015, 'augassign', "augassign: ('+=' | '-=' | '*=' | '/=' | '%=' | '&=' | '|=' | '^=' | '<<=' | '>>=' | '**=' | '//=')")
    break_stmt       = cstbuilder.builder(331020, 'break_stmt', "break_stmt: 'break'")
    classdef         = cstbuilder.builder(331074, 'classdef', "classdef: 'class' NAME ['(' [testlist] ')'] ':' suite")
    comp_for         = cstbuilder.builder(331081, 'comp_for', "comp_for: 'for' exprlist 'in' or_test [comp_iter]")
    comp_if          = cstbuilder.builder(331082, 'comp_if', "comp_if: 'if' old_test [comp_iter]")
    comp_iter        = cstbuilder.builder(331080, 'comp_iter', "comp_iter: comp_for | comp_if")
    comp_op          = cstbuilder.builder(331053, 'comp_op', "comp_op: '<' | '>' | '==' | '>=' | '<=' | '<>' | '!=' | 'in' | 'not' 'in' | 'is' | 'is' 'not'")
    comparison       = cstbuilder.builder(331052, 'comparison', "comparison: expr ( comp_op expr)*")
    compound_stmt    = cstbuilder.builder(331036, 'compound_stmt', "compound_stmt: if_stmt | while_stmt | for_stmt | try_stmt | with_stmt | funcdef | classdef | decorated")
    continue_stmt    = cstbuilder.builder(331021, 'continue_stmt', "continue_stmt: 'continue'")
    decorated        = cstbuilder.builder(331005, 'decorated', "decorated: decorators ( classdef | funcdef)")
    decorator        = cstbuilder.builder(331003, 'decorator', "decorator: '@' dotted_name ['(' [arglist] ')'] NEWLINE")
    decorators       = cstbuilder.builder(331004, 'decorators', "decorators: decorator+")
    del_stmt         = cstbuilder.builder(331017, 'del_stmt', "del_stmt: 'del' exprlist")
    dictmaker        = cstbuilder.builder(331072, 'dictmaker', "dictmaker: test ':' test (',' test ':' test)* [',']")
    dictorsetmaker   = cstbuilder.builder(331073, 'dictorsetmaker', "dictorsetmaker: (( test ':' test ( comp_for | (',' test ':' test)* [','])) | ( test ( comp_for | (',' test)* [','])))")
    dotted_as_name   = cstbuilder.builder(331029, 'dotted_as_name', "dotted_as_name: dotted_name ['as' NAME]")
    dotted_as_names  = cstbuilder.builder(331031, 'dotted_as_names', "dotted_as_names: dotted_as_name (',' dotted_as_name)*")
    dotted_name      = cstbuilder.builder(331032, 'dotted_name', "dotted_name: NAME ('.' NAME)*")
    encoding_decl    = cstbuilder.builder(331084, 'encoding_decl', "encoding_decl: NAME")
    eval_input       = cstbuilder.builder(331002, 'eval_input', "eval_input: testlist NEWLINE* ENDMARKER")
    except_clause    = cstbuilder.builder(331043, 'except_clause', "except_clause: 'except' [test [('as' | ',') test]]")
    exec_stmt        = cstbuilder.builder(331034, 'exec_stmt', "exec_stmt: 'exec' expr ['in' test [',' test]]")
    expr             = cstbuilder.builder(331054, 'expr', "expr: xor_expr ('|' xor_expr)*")
    expr_stmt        = cstbuilder.builder(331014, 'expr_stmt', "expr_stmt: testlist ( augassign ( yield_expr | testlist) | ('=' ( yield_expr | testlist))*)")
    exprlist         = cstbuilder.builder(331070, 'exprlist', "exprlist: expr (',' expr)* [',']")
    factor           = cstbuilder.builder(331060, 'factor', "factor: ('+' | '-' | '~') factor | power")
    file_input       = cstbuilder.builder(331001, 'file_input', "file_input: ( NEWLINE | stmt)* ENDMARKER")
    flow_stmt        = cstbuilder.builder(331019, 'flow_stmt', "flow_stmt: break_stmt | continue_stmt | return_stmt | raise_stmt | yield_stmt")
    for_stmt         = cstbuilder.builder(331039, 'for_stmt', "for_stmt: 'for' exprlist 'in' testlist ':' suite ['else' ':' suite]")
    fpdef            = cstbuilder.builder(331009, 'fpdef', "fpdef: NAME | '(' fplist ')'")
    fplist           = cstbuilder.builder(331010, 'fplist', "fplist: fpdef (',' fpdef)* [',']")
    funcdef          = cstbuilder.builder(331006, 'funcdef', "funcdef: 'def' NAME parameters ':' suite")
    global_stmt      = cstbuilder.builder(331033, 'global_stmt', "global_stmt: 'global' NAME (',' NAME)*")
    if_stmt          = cstbuilder.builder(331037, 'if_stmt', "if_stmt: 'if' test ':' suite ('elif' test ':' suite)* ['else' ':' suite]")
    import_as_name   = cstbuilder.builder(331028, 'import_as_name', "import_as_name: NAME ['as' NAME]")
    import_as_names  = cstbuilder.builder(331030, 'import_as_names', "import_as_names: import_as_name (',' import_as_name)* [',']")
    import_from      = cstbuilder.builder(331027, 'import_from', "import_from: ('from' ('.'* dotted_name | '.'+) 'import' ('*' | '(' import_as_names ')' | import_as_names))")
    import_name      = cstbuilder.builder(331026, 'import_name', "import_name: 'import' dotted_as_names")
    import_stmt      = cstbuilder.builder(331025, 'import_stmt', "import_stmt: import_name | import_from")
    lambdef          = cstbuilder.builder(331065, 'lambdef', "lambdef: 'lambda' [varargslist] ':' test")
    list_for         = cstbuilder.builder(331078, 'list_for', "list_for: 'for' exprlist 'in' testlist_safe [list_iter]")
    list_if          = cstbuilder.builder(331079, 'list_if', "list_if: 'if' old_test [list_iter]")
    list_iter        = cstbuilder.builder(331077, 'list_iter', "list_iter: list_for | list_if")
    listmaker        = cstbuilder.builder(331063, 'listmaker', "listmaker: test ( list_for | (',' test)* [','])")
    not_test         = cstbuilder.builder(331051, 'not_test', "not_test: 'not' not_test | comparison")
    old_lambdef      = cstbuilder.builder(331047, 'old_lambdef', "old_lambdef: 'lambda' [varargslist] ':' old_test")
    old_test         = cstbuilder.builder(331046, 'old_test', "old_test: or_test | old_lambdef")
    or_test          = cstbuilder.builder(331049, 'or_test', "or_test: and_test ('or' and_test)*")
    parameters       = cstbuilder.builder(331007, 'parameters', "parameters: '(' [varargslist] ')'")
    pass_stmt        = cstbuilder.builder(331018, 'pass_stmt', "pass_stmt: 'pass'")
    power            = cstbuilder.builder(331061, 'power', "power: atom trailer* ['**' factor]")
    print_stmt       = cstbuilder.builder(331016, 'print_stmt', "print_stmt: 'print' ([test (',' test)* [',']] | '>>' test [(',' test)+ [',']])")
    raise_stmt       = cstbuilder.builder(331024, 'raise_stmt', "raise_stmt: 'raise' [test [',' test [',' test]]]")
    return_stmt      = cstbuilder.builder(331022, 'return_stmt', "return_stmt: 'return' [testlist]")
    shift_expr       = cstbuilder.builder(331057, 'shift_expr', "shift_expr: arith_expr (('<<' | '>>') arith_expr)*")
    simple_stmt      = cstbuilder.builder(331012, 'simple_stmt', "simple_stmt: small_stmt (';' small_stmt)* [';'] NEWLINE")
    single_input     = cstbuilder.builder(331000, 'single_input', "single_input: NEWLINE | simple_stmt | compound_stmt NEWLINE")
    sliceop          = cstbuilder.builder(331069, 'sliceop', "sliceop: ':' [test]")
    small_stmt       = cstbuilder.builder(331013, 'small_stmt', "small_stmt: ( expr_stmt | print_stmt | del_stmt | pass_stmt | flow_stmt | import_stmt | global_stmt | exec_stmt | assert_stmt)")
    stmt             = cstbuilder.builder(331011, 'stmt', "stmt: simple_stmt | compound_stmt")
    subscript        = cstbuilder.builder(331068, 'subscript', "subscript: '.' '.' '.' | test | [test] ':' [test] [sliceop]")
    subscriptlist    = cstbuilder.builder(331067, 'subscriptlist', "subscriptlist: subscript (',' subscript)* [',']")
    suite            = cstbuilder.builder(331044, 'suite', "suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT")
    term             = cstbuilder.builder(331059, 'term', "term: factor (('*' | '/' | '%' | '//') factor)*")
    test             = cstbuilder.builder(331048, 'test', "test: or_test ['if' or_test 'else' test] | lambdef")
    testlist         = cstbuilder.builder(331071, 'testlist', "testlist: test (',' test)* [',']")
    testlist1        = cstbuilder.builder(331083, 'testlist1', "testlist1: test (',' test)*")
    testlist_comp    = cstbuilder.builder(331064, 'testlist_comp', "testlist_comp: test ( comp_for | (',' test)* [','])")
    testlist_safe    = cstbuilder.builder(331045, 'testlist_safe', "testlist_safe: old_test [(',' old_test)+ [',']]")
    trailer          = cstbuilder.builder(331066, 'trailer', "trailer: '(' [arglist] ')' | '[' subscriptlist ']' | '.' NAME")
    try_stmt         = cstbuilder.builder(331040, 'try_stmt', "try_stmt: ('try' ':' suite (( except_clause ':' suite)+ ['else' ':' suite] ['finally' ':' suite] | 'finally' ':' suite))")
    varargslist      = cstbuilder.builder(331008, 'varargslist', "varargslist: (( fpdef ['=' test] ',')* ('*' NAME [',' '**' NAME] | '**' NAME) | fpdef ['=' test] (',' fpdef ['=' test])* [','])")
    while_stmt       = cstbuilder.builder(331038, 'while_stmt', "while_stmt: 'while' test ':' suite ['else' ':' suite]")
    with_item        = cstbuilder.builder(331042, 'with_item', "with_item: test ['as' expr]")
    with_stmt        = cstbuilder.builder(331041, 'with_stmt', "with_stmt: 'with' with_item (',' with_item)* ':' suite")
    xor_expr         = cstbuilder.builder(331055, 'xor_expr', "xor_expr: and_expr ('^' and_expr)*")
    yield_expr       = cstbuilder.builder(331085, 'yield_expr', "yield_expr: 'yield' [testlist]")
    yield_stmt       = cstbuilder.builder(331023, 'yield_stmt', "yield_stmt: yield_expr")
    return locals()

